Scalable Address Spaces Using Rcu Balanced Trees Citation
نویسندگان
چکیده
Software developers commonly exploit multicore processors by building multithreaded software in which all threads of an application share a single address space. This shared address space has a cost: kernel virtual memory operations such as handling soft page faults, growing the address space, mapping files, etc. can limit the scalability of these applications. In widely-used operating systems, all of these operations are synchronized by a single per-process lock. This paper contributes a new design for increasing the concurrency of kernel operations on a shared address space by exploiting read-copy-update (RCU) so that soft page faults can both run in parallel with operations that mutate the same address space and avoid contending with other page faults on shared cache lines. To enable such parallelism, this paper also introduces an RCU-based binary balanced tree for storing memory mappings. An experimental evaluation using three multithreaded applications shows performance improvements on 80 cores ranging from 1.7× to 3.4× for an implementation of this design in the Linux 2.6.37 kernel. The RCU-based binary tree enables soft page faults to run at a constant cost with an increasing number of cores, suggesting that the design will scale well beyond 80 cores.
منابع مشابه
Combining HTM and RCU to Implement Highly Efficient Balanced Binary Search Trees
In this paper we combine Hardware Transactional Memory (HTM) with Read-Copy-Update (RCU) to implement highly scalable concurrent balanced Binary Search Trees (BSTs). The two key features of our approach are: a) read-only operations require no synchronization or restarts and b) tree modifications are first performed in private copies of subtrees, then HTM is used to validate their consistency, a...
متن کاملConcurrent Updates with RCU: Search Tree as an Example (Version with Additional Proofs)
Read copy update (RCU) is a novel synchronization mechanism, in which the burden of synchronization falls completely on the updaters, by having them wait for all preexisting readers to finish their read-side critical section. This paper presents Citrus, a concurrent binary search tree (BST) with a wait-free contains operation, using RCU synchronization and fine-grained locking for synchronizati...
متن کاملExtending RCU for Realtime and Embedded Workloads
This past year has seen significant increases in RCU’s realtime capabilities, particularly the ability to preempt RCU read-side critical sections. There have even been some cases where use of RCU improved realtime latency (and performance and scalability as well), in contrast to earlier implementations, which seemed only to get in the way of realtime response. That said, there is still consider...
متن کاملVerification of the Tree-Based Hierarchical Read-Copy Update in the Linux Kernel
Read-Copy Update (RCU) is a scalable, high-performance Linux-kernel synchronization mechanism that runs lowoverhead readers concurrently with updaters. Productionquality RCU implementations for multi-core systems are decidedly non-trivial. Giving the ubiquity of Linux, a rare “million-year” bug can occur several times per day across the installed base. Stringent validation of RCU’s complex beha...
متن کاملScalable QSF-Trees: Retrieving Regional Objects in High-Dimensional Spaces
Many database applications require effective representation of regional objects in high-dimensional spaces. By applying an original query transformation, a recently proposed access method for regional data, called the simple QSF-tree (sQSF-tree), effectively attacks the limitations of traditional spatial access methods in spaces with many dimensions. Nevertheless, sQSF-trees are not immune to a...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2012